package main

import (
	"encoding/json"
	"fmt"
	"knowledge-go/cpt/c_001_base/common"
)

//包的匿名导入，有时候我们仅仅需要导入包，而不是使用包，例如导入后，仅仅需要执行初始化init函数
import _ "image/png"

// 一个包下所有的文件的package 名称必须一致
func main() {
	c := common.BoilingC
	fmt.Println(c)

	f := common.CToF(c)
	fmt.Println(f)

	c2 := common.FToC(f)
	fmt.Println(c2)

	// 通过字段大小写开头，控制访问权限
	user := common.Cpt001User{}
	user.Id = 1
	user.Name = "张三"
	// 小写字段，无法访问
	//user.age = 1

	jsonBytes, err := json.Marshal(user)
	if err != nil {
		fmt.Println("JSON encoding error:", err)
	} else {
		jsonStr := string(jsonBytes)
		// {"id":1,"name":"张三"}, age 字段无法被访问，也就不能转json
		fmt.Println(jsonStr)
	}

	common.AddToCache("kk", "vv")
	vv := common.GetFromCache("kk")
	fmt.Println(vv)

	common.CacheDemo1()
	common.CacheDemo2()
	common.CacheString()

}
